The present invention relates generally to the field of service-orientation, and more particularly to service composition based on degrees of composability, historical (proven) samples, and/or prior services and their custom definition and activity.
Service-orientation is a design paradigm to build computer software in the form of services. Like other design paradigms (e.g., object-orientation), service-orientation provides a governing approach to automate business logic as distributed systems. What distinguishes service-orientation is the service-orientation's set of design principles to ensure the manner in which the service-orientation carries out the separation of concerns in the software. A service-oriented architecture (SOA) is governed by this set of design principles and when applying service-orientation results in units of software partitioned into operational capabilities, each unit is designed to solve an individual concern and qualify as a service.
A service composition is an aggregate of services collectively composed to automate a particular task or business process. To qualify as a composition, at least two participating services plus one composition initiator need to be present. A composition initiator acts as the initial sender of a message path by sending a command or input values to a composition controller. A composition controller represents a service with a capability that is executing the parent composition logic required to compose capabilities within other services. Without at least two participating services and one composition initiator, the service interaction only represents a point-to-point exchange. Service compositions can be classified into primitive and complex variations. In early service-oriented solutions, simple logic was generally implemented via point-to-point exchanges or primitive compositions. As the surrounding technology matured, complex compositions became more common. Much of the service-orientation design paradigm revolves around preparing services for effective participation in numerous complex compositions; so much so that the service composability design principle exists, dedicated to ensuring that services are designed in support of repeatable composition.